from logtool import *
import time

start = time.time()

# =====所有测试项 =====
find_1 = r'^Time taken: \d+ ms '
find_2 = r'^                 from GoodManIsAGoodMan'
find_3 = r'^GoodManIsAGoodMan/project'

newpart1=['THANKS AAA\n','THANKS BBB\n','THANKS CCC\n']
newpart2=['GOOD AAA\n','GOOD BBB\n','GOOD CCC\n']
newpart3=['APPLE AAA\n','APPLE BBB\n','APPLE CCC\n']
newpart4=['\n','APPLE AAA\n','APPLE BBB\n','APPLE CCC\n']


#CASE 1
process_Lines("check/case_01.log",1,0,find_1) #全局删除行
#CASE 2
process_Lines("check/case_02.log",2,0,find_1) #全局保留行
#CASE 3
process_Lines("check/case_03.log",3,0,find_1,'YES YES YES') #全局替换行
#CASE 4
process_Lines("check/case_04.log",1,1,find_1,lineA=1,lineB=60) #部分删除行
#CASE 5
process_Lines("check/case_05.log",2,1,find_1,lineA=1,lineB=60) #部分保留行
#CASE 6
process_Lines("check/case_06.log",3,1,find_1,new_part='NO NO NO',lineA=1,lineB=60) #部分替换行
#CASE 7
k = process_Lines("check/case_07.log",4,0,find_1) #全局统计行
print("CASE 7 统计行有",k)
#CASE 8
k = process_Lines("check/case_08.log",4,1,find_1,lineA=1,lineB=60) #部分统计行
print("CASE 8 统计行有",k)
# CASE 9
process_HeadLines("check/case_09.log",1,find_1,prefer=0) #删除头部
# CASE 10
process_HeadLines("check/case_10.log",1,find_1,prefer=1) #删除头部
# CASE 11
process_HeadLines("check/case_11.log",2,find_1,prefer=0) #保留头部
# CASE 12
process_HeadLines("check/case_12.log",2,find_1,prefer=1) #保留头部
# CASE 13
process_HeadLines("check/case_13.log",3,find_1,newpart1,prefer=0) #替换头部
# CASE 14
process_HeadLines("check/case_14.log",3,find_1,newpart1,prefer=1) #替换头部
# CASE 15
process_HeadLines("check/case_15.log",4,new_head=newpart2) #直接添加新头部
# CASE 17
k = process_HeadLines("check/case_17.log",5,find_1,prefer=0) #统计头部行数
print("CASE 17 统计的行有",k)
# CASE 18
k = process_HeadLines("check/case_18.log",5,find_1,prefer=1) #统计头部行数
print("CASE 18 统计的行有",k)
#CASE 19
process_TailLines("check/case_19.log",1,find_1,prefer=0) #删除尾巴
#CASE 20
process_TailLines("check/case_20.log",1,find_1,prefer=1) #删除尾巴
#CASE 21
process_TailLines("check/case_21.log",2,find_1,prefer=0) #保留尾巴
#CASE 22
process_TailLines("check/case_22.log",2,find_1,prefer=1) #保留尾巴
#CASE 23
process_TailLines("check/case_23.log",3,find_1,newpart2,prefer=0) #替换尾巴
#CASE 24
process_TailLines("check/case_24.log",3,find_1,newpart2,prefer=1) #替换尾巴
#CASE 25
process_TailLines("check/case_25.log",4,new_tail=newpart2) #直接添加新尾巴
#CASE 27
k = process_TailLines("check/case_27.log",5,find_1,prefer=0) #统计尾巴的行数
print("CASE 27 统计的行有",k)
#CASE 28
k = process_TailLines("check/case_28.log",5,find_1,prefer=1) #统计尾巴的行数
print("CASE 28 统计的行有",k)
#CASE 29
process_PartLines("check/case_29.log",1,find_2,find_3,first_prefer=0,last_prefer=0)  #删除部分
#CASE 30
process_PartLines("check/case_30.log",1,find_2,find_3,first_prefer=0,last_prefer=1)  #删除部分
#CASE 31
process_PartLines("check/case_31.log",2,find_2,find_3,first_prefer=0,last_prefer=0)  #保留部分
#CASE 32
process_PartLines("check/case_32.log",2,find_2,find_3,first_prefer=0,last_prefer=1)  #保留部分
#CASE 33
process_PartLines("check/case_33.log",3,find_2,find_3,newpart3,first_prefer=0,last_prefer=0)  #替换部分
#CASE 34
process_PartLines("check/case_34.log",3,find_2,find_3,newpart3,first_prefer=0,last_prefer=1)  #替换部分
#CASE 35
k = process_PartLines("check/case_35.log",4,find_2,find_3,first_prefer=0,last_prefer=0)  #统计部分的行数
print("CASE 35 统计的行有",k)
#CASE 36
k = process_PartLines("check/case_36.log",4,find_2,find_3,first_prefer=0,last_prefer=1)  #统计部分的行数
print("CASE 36 统计的行有",k)
#CASE 37
insert_multi_lines("check/case_37.log",7,newpart4)
#CASE 38
process_several_lines("check/case_38.log",[2,3,4,5],1) #删除行
#CASE 39
process_several_lines("check/case_39.log",[2,3,4,5],2) #保留行
#CASE 40
process_several_lines("check/case_40.log",[2,3,4,5],3,new_line='AAA DDD CCC BBB\n') #替换行
#CASE 41
delete_blank("check/case_41.log",1) #全局删除空白行
#CASE 42
delete_blank("check/case_42.log",2,60) #数字行之后，删除空白行
#CASE 43
delete_blank("check/case_43.log",3,60) #数字行之前，删除空白行
#CASE 44
delete_blank("check/case_44.log",4,target_line='Time taken: 715 ms',prefer=0) #匹配行之后，删除空白行
#CASE 45
delete_blank("check/case_45.log",4,target_line='Time taken: 715 ms',prefer=1) #匹配行之后，删除空白行
#CASE 46
delete_blank("check/case_46.log",5,target_line='Time taken: 715 ms',prefer=0) #匹配行之前，删除空白行
#CASE 47
delete_blank("check/case_47.log",5,target_line='Time taken: 715 ms',prefer=1) #匹配行之前，删除空白行
#CASE 48
check_word("check/case_48.log",r'Time taken: .+\n',1,0) #删除目标字符串，同时删除换行
#CASE 49
check_word("check/case_49.log",r'Time taken: .+\n',1,1) #删除目标字符串，保留换行
#CASE 50
check_word("check/case_50.log",r'Time taken: .+\n',2,newword='=====ALL-UNEED-MSG=====\n') #替换目标字符串
#CASE 51
k = check_word("check/case_51.log",r'GoodManIsAGoodMan/board/tx210/include',3)
print("CASE 51 统计的行有",k)

end = time.time()
cost = round((end - start),2)
print("51个Case测试花费[%s]秒" % cost)




